/*
 *  sudoku.c
 *  complexidade
 *  http://br.spoj.pl/problems/SUDOIME
 *  Created by Bruno Dias on 08/05/11.
 *  Copyright 2011 __MyCompanyName__. All rights reserved.
 *
 */

#include <stdio.h>
#include <stdlib.h>

enum boolean {
	true = 1, false = 0
};

typedef enum boolean bool; 
bool estado = true;

void limpa_aux(int vet_aux[]) {
	int z;
	for( z=0; z<10;z++){
		vet_aux[z]=0;
	}
}

void testa_bloco(int matrix_aux[9][9], int row, int column) {
	int i, j, vet[10];
	limpa_aux(vet);
	for (i = 0; i < 3; ++i) {
		for (j = 0; j < 3; ++j) {
			if (vet[matrix_aux[i + row][j + column]] != 0) {
				estado = false;
				return;
			} else
				vet[matrix_aux[i + row][j + column]]++;
		}
	}
	
}

int main() {
	int n, i, j, inst = 1;
	scanf("%d", &n);
	while (n > 0) {
		int matrix[9][9];
		estado = true;
		for (i = 0; i < 9; ++i) {
			for (j = 0; j < 9; ++j) {
				scanf("%d", &matrix[i][j]);
			}
		}
		
		for (i = 0; (i < 9) && (estado); ++i) {
			int vet_row[10], vet_column[10];
			limpa_aux(vet_row);
			limpa_aux(vet_column);
			for (j = 0; (j < 9) && (estado); ++j) {
				if (vet_row[matrix[i][j]] != 0) {
					estado = false;
				} else
					vet_row[matrix[i][j]]++;
				
				if (vet_column[matrix[j][i]] != 0) {
					estado = false;
				} else
					vet_column[matrix[j][i]]++;
			}
		}
		for (i = 0; i < 9; i += 3) {
			for (j = 0; j < 9; j += 3) {
				testa_bloco(matrix, i, j);
			}
		}
		if (estado == true) {
			printf("Instancia %d\nSIM\n\n", inst++);
		} else
			printf("Instancia %d\nNAO\n\n", inst++);
	n--;
	}
	return EXIT_SUCCESS;
}